package Object类.对象比较equals方法;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 姚东名
 * Date: 2024-06-19
 * Time: 15:50
 */
class Person1 {
    private String name;
    private int age;

    public Person1(String name, int age) {
        this.name = name;
        this.age = age;
    }

    @Override
    public boolean equals(Object obj) {
        if(obj == null) {
            return false;
        }
        //自己和自己比较
        if(this == obj) {
            return true;
        }
        //不是Person1对象
        if(!(obj instanceof Person1)) {
            return false;
        }
        //开始比较：
        Person1 person1 = (Person1) obj;//向下转型
        //理论来讲，名字相同，年龄相同，可以看成是一个人
        return this.name.equals(person1.name) && this.age == person1.age;
    }
}
public class Test1 {
    public static void main(String[] args) {
        Person1 person1 = new Person1("张三", 19);
        Person1 person2 = new Person1("张三", 19);

        int a = 10;
        int b = 10;

        System.out.println(a == b);//true
        System.out.println(person1 == person2);//false
        System.out.println(person1.equals(person2));//true
    }
}

//结论：比较对象中内容是否相同的时候，一定要重写equals方法。